home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-27 | 10.4 KB | 344 lines |
- 10 'CAPYTEL - CAPACITOR, Telescoping - 29 JAN 06 rev. 27 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
- 40 COMMON EX$
- 50 CLS:KEY OFF
- 60 COLOR 7,0,1
- 70 PI=3.14159
- 80 LF=1/LOG(10) 'Factor to covert natural log to log base 10
- 90 U1$="####.###"
- 100 U2$="#########"
- 110 U3$="########"
- 120 UL$=STRING$(80,205)
- 130 X$=STRING$(80,32)
- 140 DIM P$(12,4) 'pipe sizes
- 150 DIM T$(12,4) 'tubing sizes
- 160 '
- 170 DATA 1/8,.405,.068, 1/4,.54,.088, 3/8,.675,.091, 1/2,.84,.109
- 180 DATA 3/4,1.05,.113, 1,1.315,.133, 1-1/4,1.66,.14, 1-1/2,1.9,.145
- 190 DATA 2,2.375,.154, 2-1/2,2.875,.203, 3,3.5,.216, 4,4.5,.237
- 200 FOR X=1 TO 12:FOR Y=1 TO 3:READ P$(X,Y):NEXT Y:NEXT X
- 210 DATA 3/16,.1875,.049, 1/4,.25,.049, 5/16,.3125,.049, 3/8,.375,.049
- 220 DATA 7/16,.4375,.049, 1/2,.5,.049, 5/8,.625,.049, 3/4,.75,.049
- 230 DATA 7/8,.875,.049, 1,1,.049, 1-1/4,1.25,.049, 1-1/2,1.5,.049
- 240 FOR X=1 TO 12:FOR Y=1 TO 3:READ T$(X,Y):NEXT Y:NEXT X
- 250 GOTO 350
- 260 '
- 270 VIEW PRINT 17 TO 24:CLS:VIEW PRINT:LOCATE 17
- 280 RETURN
- 290 '
- 300 '.....format display
- 310 LOCATE CSRLIN-1:PRINT SPC(7);
- 320 LOCATE CSRLIN,45:PRINT STRING$(5,".");USING U1$;ZZ;
- 330 RETURN
- 340 '
- 350 '.....start
- 360 CLS:M=0:C=0:OD=0:ID=0:D=0:A=0:L=0:BV=0:E=0:DIA=0:CF=0
- 370 COLOR 15,2
- 380 PRINT " CAPACITOR, Telescoping Variable";
- 390 PRINT TAB(57);"by George Murphy VE3ERP ";
- 400 COLOR 1,0:PRINT STRING$(80,223);:COLOR 7,0
- 410 GOSUB 1520 'diagram
- 420 GOSUB 1710
- 430 PRINT
- 440 GOSUB 3160 'text
- 450 '
- 460 LOCATE 25,22:COLOR 0,7
- 470 PRINT " Press 1 to continue or 0 to EXIT.....";
- 480 COLOR 7,0
- 490 Z$=INKEY$:IF Z$=""THEN 490
- 500 IF Z$="0"THEN CLS:CHAIN GO$
- 510 IF Z$="1"THEN 530
- 520 GOTO 490
- 530 GOSUB 270
- 540 '
- 550 LOCATE CSRLIN-1:PRINT X$;
- 560 PRINT TAB(7);
- 570 PRINT "Do you want to enter dimensions in (c)entimetres or (i)nches? (c/i)"
- 580 Z$=INKEY$:IF Z$=""THEN 580
- 590 IF Z$="c"THEN M$="cm.":M=2.54:GOTO 620
- 600 IF Z$="i"THEN M$="in.":M=1:GOTO 620
- 610 GOTO 580
- 620 GOSUB 270
- 630 '
- 640 INPUT " ENTER: Max. voltage potential between elements (0 if don't care) ";E
- 650 IF E=0 THEN 740
- 660 AIR=E/21/10^3
- 670 GOSUB 270
- 680 LOCATE 16
- 690 PRINT TAB(15)"Air gap between elements must be at least";
- 700 PRINT USING "##.###";AIR*M;:PRINT " ";M$
- 710 PRINT
- 720 PRINT TAB(26);"Press any key to continue....."
- 730 IF INKEY$=""THEN 730
- 740 GOSUB 270
- 750 '
- 760 PRINT
- 770 PRINT " Press number in ( ) to:
- 780 PRINT " (1) Specify capacitance and find overlap"
- 790 PRINT " (2) Specify overlap and find capacitance"
- 800 IF ID*OD<>0 THEN 840
- 810 PRINT " (3) Select standard copper pipe sizes for elements"
- 820 PRINT " (4) Select standard aluminum tubing sizes for elements"
- 830 PRINT " (0) Quit"
- 840 Z$=INKEY$:IF Z$=""THEN 840
- 850 IF Z$="1"THEN GOSUB 270:GOTO 990
- 860 IF Z$="2"THEN GOSUB 270:GOTO 940
- 870 IF ID*OD<>0 THEN 910
- 880 IF Z$="3"THEN VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 1770
- 890 IF Z$="4"THEN VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 2500
- 900 IF Z$="0"THEN 350
- 910 GOTO 840
- 920 '
- 930 '.....input data
- 940 PRINT " ENTER: Length of element overlap...........(";M$;")";:INPUT L
- 950 L=L/M
- 960 ZZ=L:GOSUB 300:PRINT " in. =";USING U1$;L*2.54;:PRINT " cm."
- 970 GOSUB 1180:GOTO 1030
- 980 '
- 990 INPUT " ENTER: Desired capacitance..................(pF)";C
- 1000 ZZ=C:GOSUB 300:PRINT " pF"
- 1010 GOSUB 1180
- 1020 '
- 1030 IF OD=0 THEN 1050
- 1040 PRINT " Inner element Outside Diameter......(";M$;")";:GOTO 1060
- 1050 PRINT " ENTER: Inner element Outside Diameter......(";M$;")";:INPUT OD
- 1060 OD=OD/M
- 1070 ZZ=OD:GOSUB 300:PRINT " in. =";USING U1$;OD*2.54;:PRINT " cm."
- 1080 GOSUB 1180
- 1090 '
- 1100 IF ID=0 THEN 1120
- 1110 PRINT " Outer element Inside Diameter.......(";M$;")";:GOTO 1130
- 1120 PRINT " ENTER: Outer element Inside Diameter.......(";M$;")";:INPUT ID
- 1130 ID=ID/M
- 1140 ZZ=ID:GOSUB 300:PRINT " in. =";USING U1$;ID*2.54;:PRINT " cm."
- 1150 GOSUB 1180
- 1160 GOTO 350
- 1170 '
- 1180 '.....calculation
- 1190 IF C=0 AND ID*OD*L>0 THEN C=7.47/(LOG(ID/OD)*LF)*L/12:GOTO 1180
- 1200 IF L=0 AND ID*OD*C>0 THEN L=12*C/(7.47/(LOG(ID/OD)*LF)):GOTO 1180
- 1210 IF D=0 AND ID*OD>0 THEN D=(ID-OD)/2:GOTO 1180 'air gap
- 1220 IF CF=0 AND OD>0 THEN CF=OD*PI:GOTO 1170 'circumference
- 1230 IF A=0 AND L*CF>0 THEN A=L*CF:GOTO 1170 'surface area
- 1240 IF C*D*ID*OD*L*CF*A THEN 1270
- 1250 RETURN
- 1260 '
- 1270 BV=21*D*10^3 'breakdown voltage
- 1280 GOSUB 270
- 1290 PRINT " Capacitance..............................";USING U1$;C;
- 1300 PRINT " pF"
- 1310 PRINT " Length of element overlap................";USING U1$;L;
- 1320 PRINT " in. =";USING U1$;L*2.54;:PRINT " cm."
- 1330 PRINT " Calibration of travel........each 10 pF =";USING U1$;L/C*10;
- 1340 PRINT " in. =";USING U1$;L/C*10*2.54;:PRINT " cm."
- 1350 PRINT " INNER element OUTSIDE Diameter...........";USING U1$;OD;
- 1360 PRINT " in. =";USING U1$;OD*2.54;:PRINT " cm."
- 1370 PRINT " OUTER element INSIDE Diameter............";USING U1$;ID;
- 1380 PRINT " in. =";USING U1$;ID*2.54;:PRINT " cm."
- 1390 PRINT " Air space between element surfaces.......";USING U1$;D;
- 1400 PRINT " in. =";USING U1$;D*2.54;:PRINT " cm."
- 1410 PRINT " Surface area common to both elements.....";USING U1$;A;
- 1420 PRINT " in<UNK! {FD20}>=";USING U1$;A*6.4516;:PRINT " cm<UNK! {FD22}>
- 1430 PRINT " Approximate breakdown voltage............";USING U2$;BV;
- 1440 PRINT " v.";
- 1450 'LOCATE 15:PRINT X$ ; 'blank out background colour
- 1460 '
- 1470 '.....end
- 1480 GOSUB 3310
- 1490 GOTO 350
- 1500 END
- 1510 '
- 1520 '.....diagram
- 1530 COLOR 0,7
- 1540 T=13
- 1550 LOCATE ,T:PRINT " "
- 1560 LOCATE ,T:PRINT " insulating caps fastened to outer element SOUNDCOLOR "
- 1570 LOCATE ,T:PRINT " CALL "
- 1580 LOCATE ,T:PRINT " CALLDEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND overlap SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLCALL CALL "
- 1590 LOCATE ,T:PRINT " VARPTRCOLOR CALL determines capacitance VARPTRCOLOR CALL "
- 1600 LOCATE ,T:PRINT " CALLERLFNTHENTHENTHENTHENTHENFNFNTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENFNSAVECALLDEFSNGSOUND' "
- 1610 LOCATE ,T:PRINT " CALL CALL CALLERLFNTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENSTEPTHENSTEPTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION "
- 1620 LOCATE ,T:PRINT " CALL CALL VARPTRSOUNDDEFDBLCALL CALL DEFSNGSOUND sliding inner element SOUNDDEFDBL CALL "
- 1630 LOCATE ,T:PRINT " CALL CALL CALL CALLERRSTEPTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENFNTHENFNTHENTHENTHENTHENTHENTHENTHENTHENTHENSAVE "
- 1640 LOCATE ,T:PRINT " CALLERRSTEPTHENTHENINSTRTHENTHENSTEPSTEPTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENSTEPOPTIONCALL "
- 1650 LOCATE ,T:PRINT " CLS' CALL CLS' "
- 1660 LOCATE ,T:PRINT " CLSSOUND sliding insulator fastened to inner element "
- 1670 LOCATE ,T:PRINT " "
- 1680 COLOR 7,0
- 1690 RETURN
- 1700 '
- 1710 COLOR 7,1
- 1720 LOCATE ,T:PRINT " Program suggested by Harold Kane, W2AHW "
- 1730 LOCATE ,T:PRINT " Formulae provided by Doug DeMaw, W1FB "
- 1740 COLOR 7,0
- 1750 RETURN
- 1760 '
- 1770 '.....pipe sizes
- 1780 INC=1 'increment between inner and outer pipe sizes
- 1790 '
- 1800 VIEW PRINT 12 TO 24:CLS:VIEW PRINT:LOCATE 3
- 1810 IF INC=1 THEN INC$=" VOLTAGE RATINGS"
- 1820 IF INC=-1 THEN INC$=" CAPACITANCES"
- 1830 PRINT " American ANSI Standard Schedule 40 Copper Pipe ";
- 1840 PRINT "(all dimensions are in inches)"
- 1850 PRINT UL$;
- 1860 T=7
- 1870 PRINT TAB(T);
- 1880 PRINT "ANSI Standard nominal pipe sizes bear no relation to actual pipe"
- 1890 PRINT TAB(T);
- 1900 PRINT "dimensions. They are an anomalous holdover from obsolete standards"
- 1910 PRINT TAB(T);
- 1920 PRINT "long since abandoned, but neverthless still remain in use."
- 1930 PRINT UL$;
- 1940 LOCATE CSRLIN-1,39:PRINT "FN"
- 1950 LOCATE CSRLIN-1,49:PRINT "FN"
- 1960 LOCATE CSRLIN-1,58:PRINT "FN"
- 1970 LOCATE CSRLIN-1,69:PRINT "FN"
- 1980 PRINT TAB(7)"Nominal";TAB(39)"CALLfits into";TAB(49)"CALLwith air";
- 1990 PRINT TAB(58)"CALL Capacity";TAB(69)"CALL Maximum";
- 2000 PRINT TAB(8)"size";TAB(18)"O.D.";TAB(26)"Wall";TAB(34)"I.D.";
- 2010 PRINT TAB(39)"CALLpipe size";TAB(49)"CALL gap of";TAB(58)"CALL per inch";
- 2020 PRINT TAB(69)"CALL Volts"
- 2030 PRINT UL$;
- 2040 LOCATE CSRLIN-1,39:PRINT "STEP"
- 2050 LOCATE CSRLIN-1,49:PRINT "STEP"
- 2060 LOCATE CSRLIN-1,58:PRINT "STEP"
- 2070 LOCATE CSRLIN-1,69:PRINT "STEP"
- 2080 '
- 2090 FOR Z=1 TO 10
- 2100 IF INC=1 THEN K=Z 'increment between pipe sizes
- 2110 IF INC=-1 THEN K=Z+1 'increment between pipe sizes
- 2120 Z$=P$(Z,1):OD=VAL(P$(Z,2)):WAL=VAL(P$(Z,3))
- 2130 ID=OD-2*WAL
- 2140 PRINT TAB(2)"(";CHR$(96+Z);")";
- 2150 PRINT TAB(8)Z$;CHR$(34);
- 2160 PRINT TAB(14)USING U1$;OD;
- 2170 PRINT USING U1$;WAL;
- 2180 PRINT USING U1$;ID;
- 2190 FOR Y=Z+1 TO 12
- 2200 J=VAL(P$(Y,2))-2*VAL(P$(Y,3))
- 2210 IF J>VAL(P$(K,2)) THEN 2230
- 2220 NEXT Y
- 2230 P$(Z,4)=STR$(J)
- 2240 GAP=(J-OD)/2
- 2250 PRINT TAB(42)P$(Y,1);CHR$(34);TAB(49)USING U1$;GAP;
- 2260 CI=7.47/(LOG(J/OD)*LF)/12 'capacity per inch
- 2270 PRINT " ";USING U1$;CI;:PRINT " pF";USING U3$;GAP*21*10^3
- 2280 NEXT Z
- 2290 '
- 2300 PRINT TAB(2)"(";CHR$(96+Z);") List pipe combinations with HIGHER";INC$
- 2310 PRINT TAB(2)"(";CHR$(97+Z);") RETURN TO MENU"
- 2320 IF E=0 THEN 2360 'breakdown voltage
- 2330 LOCATE 24,17:PRINT "Note: Minimum air gap for";E;"volts is";
- 2340 PRINT USING "##.###";AIR;:PRINT " in.";
- 2350 '
- 2360 COLOR 0,7:LOCATE 25,15
- 2370 PRINT " Press a letter in ( ) to choose one of the above...";
- 2380 COLOR 7,0
- 2390 Z$=INKEY$:IF Z$=""THEN 2390
- 2400 IF ASC(Z$)<97 OR ASC(Z$)>108 THEN 2390
- 2410 Z=ASC(Z$)-96
- 2420 OD=VAL(P$(Z,2)):ID=VAL(P$(Z,4))
- 2430 IF Z=11 THEN INC=INC*-1:GOTO 1800
- 2440 IF Z=12 THEN OD=0:ID=0 'return to menu
- 2450 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 2460 GOSUB 1520 'diagram
- 2470 GOTO 760
- 2480 END
- 2490 '
- 2500 '.....aluminum tubing
- 2510 INC=1 'increment between inner and outer tube sizes
- 2520 '
- 2530 VIEW PRINT 9 TO 24:CLS:VIEW PRINT:LOCATE 3
- 2540 IF INC=1 THEN INC$=" VOLTAGE RATINGS"
- 2550 IF INC=-1 THEN INC$=" CAPACITANCES"
- 2560 PRINT " Standard Sizes of 6061-T6(61S-T6) Round Aluminum Tube."
- 2570 PRINT " (All dimensions are in inches)"
- 2580 PRINT " Order tube by O.D. and wall thickness (e.g. 1/2";CHR$(34);" x ";
- 2590 PRINT ".049";CHR$(34);" wall)."
- 2600 PRINT UL$;
- 2610 LOCATE CSRLIN-1,39:PRINT "FN"
- 2620 LOCATE CSRLIN-1,49:PRINT "FN"
- 2630 LOCATE CSRLIN-1,58:PRINT "FN"
- 2640 LOCATE CSRLIN-1,69:PRINT "FN"
- 2650 PRINT TAB(7)"Nominal";TAB(39)"CALLfits into";TAB(49)"CALLwith air";
- 2660 PRINT TAB(58)"CALL Capacity";TAB(69)"CALL Maximum";
- 2670 PRINT TAB(8)"size";TAB(18)"O.D.";TAB(26)"Wall";TAB(34)"I.D.";
- 2680 PRINT TAB(39)"CALLtube size";TAB(49)"CALL gap of";TAB(58)"CALL per inch";
- 2690 PRINT TAB(69)"CALL Volts"
- 2700 PRINT UL$;
- 2710 LOCATE CSRLIN-1,39:PRINT "STEP"
- 2720 LOCATE CSRLIN-1,49:PRINT "STEP"
- 2730 LOCATE CSRLIN-1,58:PRINT "STEP"
- 2740 LOCATE CSRLIN-1,69:PRINT "STEP"
- 2750 '
- 2760 FOR Z=1 TO 10
- 2770 IF INC=1 THEN K=Z 'increment between tube sizes
- 2780 IF INC=-1 THEN K=Z+1 'increment between tube sizes
- 2790 Z$=T$(Z,1):OD=VAL(T$(Z,2)):WAL=VAL(T$(Z,3))
- 2800 ID=OD-2*WAL
- 2810 PRINT TAB(2)"(";CHR$(96+Z);")";
- 2820 PRINT TAB(8)Z$;CHR$(34);
- 2830 PRINT TAB(14)USING U1$;OD;
- 2840 PRINT USING U1$;WAL;
- 2850 PRINT USING U1$;ID;
- 2860 FOR Y=Z+1 TO 12
- 2870 J=VAL(T$(Y,2))-2*VAL(T$(Y,3))
- 2880 IF J>VAL(T$(K,2)) THEN 2900
- 2890 NEXT Y
- 2900 T$(Z,4)=STR$(J)
- 2910 GAP=(J-OD)/2
- 2920 PRINT TAB(42)T$(Y,1);CHR$(34);TAB(49)USING U1$;GAP;
- 2930 CI=7.47/(LOG(J/OD)*LF)/12 'capacity per inch
- 2940 PRINT " ";USING U1$;CI;:PRINT " pF";USING U3$;GAP*21*10^3
- 2950 NEXT Z
- 2960 '
- 2970 PRINT TAB(2)"(";CHR$(96+Z);") List tube combinations with HIGHER";INC$
- 2980 PRINT TAB(2)"(";CHR$(97+Z);") RETURN TO MENU"
- 2990 IF E=0 THEN 3030 'breakdown voltage
- 3000 LOCATE 22,17:PRINT "Note: Minimum air gap for";E;"volts is";
- 3010 PRINT USING "##.###";AIR;:PRINT " in.";
- 3020 '
- 3030 COLOR 0,7:LOCATE 25,15
- 3040 PRINT " Press a letter in ( ) to choose one of the above...";
- 3050 COLOR 7,0
- 3060 Z$=INKEY$:IF Z$=""THEN 3060
- 3070 IF ASC(Z$)<97 OR ASC(Z$)>108 THEN 3060
- 3080 Z=ASC(Z$)-96
- 3090 OD=VAL(T$(Z,2)):ID=VAL(T$(Z,4))
- 3100 IF Z=11 THEN INC=INC*-1:GOTO 2530
- 3110 IF Z=12 THEN OD=0:ID=0 'return to menu
- 3120 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 3130 GOSUB 1520 'diagram
- 3140 GOTO 760
- 3150 END
- 3160 '.....text
- 3170 Q=7
- 3180 PRINT TAB(Q);
- 3190 PRINT "Variable capacitors can be constructed from two telescoping pieces"
- 3200 PRINT TAB(Q);
- 3210 PRINT"of metal pipe or tubing as shown in the diagram. Provide small holes"
- 3220 PRINT TAB(Q);
- 3230 PRINT "or slots in the end caps and sliding insulator for free passage of"
- 3240 PRINT TAB(Q);
- 3250 PRINT "air to prevent the assembly from becoming a pneumatic piston."
- 3260 PRINT
- 3270 PRINT TAB(Q);
- 3280 PRINT "Inner element actuation is left up to the builder's ingenuity.";
- 3290 RETURN
- 3300 '
- 3310 'HARDCOPY
- 3320 GOSUB 3430:LOCATE 25,2:COLOR 14,6
- 3330 PRINT " Press 1 to print screen, 2 to print screen & ";
- 3340 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 3350 Z$=INKEY$:IF Z$="3"THEN GOSUB 3430:RETURN
- 3360 IF Z$="1"OR Z$="2"THEN GOSUB 3430:GOTO 3380
- 3370 GOTO 3350
- 3380 FOR QX=1 TO 24:FOR QY=1 TO 80
- 3390 LPRINT CHR$(SCREEN(QX,QY));
- 3400 NEXT QY:NEXT QX
- 3410 IF Z$="2"THEN LPRINT CHR$(12)
- 3420 GOTO 3320
- 3430 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-